iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 5
1

今天我們將第一次從電腦推訊息到google home,我們首先建立一個資料夾
在資料夾的路徑下,先進行

npm init

會得到package.json。
再進行安裝 google-home-push這個套件

sudo npm install --save google-home-push

但會遇到問題

這是因為樹莓派環境不像電腦,缺少很多npm基本環境,需裝:mkdirp、mdns、node-gyp

sudo npm install -g node-gyp
sudo npm install -g mkdirp
sudo npm install -g mdns

並提供root權限安裝google-home-push及libavahi

sudo npm install --save google-home-push --unsafe-perm=true --allow-root
sudo apt-get install libavahi-compat-libdnssd-dev

最後check package.json 的dependencies(之後要重新安裝就複製dependencies)

{
  "name": "ithelp",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "@google-cloud/language": "^4.0.0",
    "@google-cloud/vision": "^1.8.0",
    "castv2-client": "^1.2.0",
    "google-home-push": "^1.1.3",
    "mdns": "^2.5.1",
    "mkdirp": "^1.0.4",
    "node-gyp": "^5.1.1"
  }
}

接著建立config.js 與googleHomeService.js


[中間插播]

config.js:
用來放各裝置的ip,這邊我是用array放多個物件(各裝置的資訊),只要記得一定要有ip

googleHomeService.js:
用來執行我們將要運用的npm套件 google-home-push


接下來config.js填入裝置資訊

exports.moudule = [
{  
    name: "google home",//用來給自己辨認裝置,自行取名
    place: "1",//用來給自己辨認裝置所在的房間,自行取名
    ip : "192.168.72.200"//裝置IP位址
},
{  
    name: "net mini",
    place: "2",
    ip : "192.168.72.36"
},
]

googleHomeService.js

 const googleHome = require('google-home-push');
const config = require('./config')

const language = "zh-TW"
const accent = "zh-TW"
const options = {
  language: language,
  accent: accent
}
const myHome = new googleHome(config.moudule[0].ip,options)

myHome.speak("你好"); 

language、accent依其字面上意義,為google-home-push提供語言及腔調的選擇,想玩的同學可以至下方網址選擇。
https://cloud.google.com/translate/docs/languages
其實也有語速可以進行變化,但就不多寫了。有興趣的同學請自己動手。
最後new googleHome()放入IP位址及選項
這樣即可簡單的在myHome.speak()中使用字串推播訊息!


上一篇
Day4 把GoogleHome設定一波
下一篇
Day6 如何用tts推播(2,ngrok及postman)
系列文
手拉手教自己用樹梅派、GoogleHome、GCP做一個AI智慧提醒機器人!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言